The present invention relates to industrial controllers for controlling industrial processes or manufacturing equipment and in particular to a method of simplifying the programming of industrial controllers.
Industrial controllers are special purpose computers used for controlling controlled processes or manufacturing equipment. Under the direction of a stored control program, the industrial controller examines a set of inputs reflecting the status of the controlled process and changes a set of outputs controlling the controlled process based on control logic of the control program. The inputs and outputs may be binary, that is on or off, or analog, providing a value within a continuous range. Typically analog signals are converted to binary words for processing.
Unlike conventional computers which normally run standardized applications, industrial controllers often operate programs uniquely tailored for a particular control situation. Accordingly, it is important to be able to efficiently and easily program industrial controllers.
In this regard, it is known to reuse elemental portions of other control program xe2x80x9cfragmentsxe2x80x9d in creating the control logic of a control program for a particular job. This may be done by copying the program fragments and inserting them one or more times within the body of the control program to be developed.
A characteristic feature of most control programs is the use of a large number of input and output variables, each corresponding to control points on the controlled process. The input and output variables of the reused program fragments, when integrated into the body of the control program being developed, must be re-named and cross referenced so as to preserve the uniqueness of the variable names for each program fragment and so as to keep track of the variable""s relationship both to the controlled process and to the program fragment of which it is a part. This renaming and cross-referencing is a laborious task.
After the control logic is complete, a human machine interface (HMI) may be developed providing for software control or monitoring of input and output variables and of the controlled process itself. Such monitoring may use one or more virtual controls (e.g., pushbuttons or the like displayed on a computer monitor) and/or animations of equipment during particular input and output states. The program fragment underlying each virtual control or animation may be reused in the same way that program fragments are reused for the control logic. Such reuse imposes a similar burden in renaming input and output variables, and the additional burden of cross-referencing of the variables of the HMI program fragments to the variables of the control logic which they portray.
HMI program fragments cannot normally be preconnected to corresponding control logic because this limits the programmer""s flexibility to omit HMI for some control logic and to use multiple HMI for other control logic. Connecting HMI program fragments to the appropriate control logic program fragments is complicated by the earlier renaming of the control variables of the control logic fragments during their integration into the body of the control program being developed.
What is needed is a method of constructing control programs having control logic and HMI program fragments that greatly simplifies the process of renaming variables and in keeping track of their relationship to the underlying program fragments and to the controlled process as a whole.
The present invention provides a tool for simplifying the development of control programs including control logic and HMI, by using a library of predeveloped program fragments. The invention simplifies the problem of renaming variables incident to program fragment reuse by enforcing an overarching framework on the development of the control program, specifically, that of an xe2x80x9carea-modelxe2x80x9d representing physical equipment and phases of operation of that equipment. This area-model follows the framework of the S88 model developed by the International Society of Measurement and Control so as to be familiar to control engineers.
Using the area-model as a development framework, program fragments are attached to particular phases of the model and derive their name from the hierarchy of the area-model through the simple process of concatenating onto variable names the names of equipment and phases of the corresponding portions of the area-model. In this way, individual variables retain their identity and yet are ensured to be unique within the control program.
Specifically then, the present invention provides a development tool for creating control programs executable on an industrial controller to control a controlled process. The development tool may be implemented on an electronic computer and includes an area-model developer which generates an area-model representing physical equipment and phases of operation of the physical equipment used in the controlled process. The area-model links phases of operation to physical equipment hierarchically. The development tool further includes a library providing different program fragments executable on the industrial controller to perform the phases of operation, where the program fragments have variables representing physical inputs or physical outputs communicating with the controlled process. A program integration wizard receives the area-model and the library and accepts input from a user to match program fragments of the library to phases of operation of particular equipment in the area-model to produce the control program. Upon the matching, the program integration wizard uniquely denotes the control variables of all program fragments in the control program according to the hierarchy of the area-model.
Thus, it is one object of the invention to provide for a logical and automatic renaming of the variables of program fragments to be unique within the context of the control program by making use of the natural framework provided by the organizational structure of the area-model.
The area-model developer may provide a unique tag for each piece of physical equipment when multiple instances of the same physical equipment are used in the area-model and may develop a unique tag to represent each phase of operation when multiple instances of the same type of phase of operation are used in the area-model. The unique tag for the phase of operation may be concatenated onto the control variables of the program fragment thereby creating a unique variable name.
Thus, it is another object of the invention to provide for a simple renaming convention following the hierarchy of the area-model while preserving the fundamental identity of the original control variable such as may be needed for connection of the control variable to other control variables or to HMI variables for an HMI program.
The connection of phases of operation to equipment may be done by manipulation of icons representing the phases of operation and the equipment.
It is another object of the invention, therefore, to provide an intuitive method for rapidly creating an area-model.
The program integration wizard may display juxtaposed depictions of the area-model and the program fragments and input from the user may be the dragging of representations of program fragments to phases of operation of the area-model.
Thus it is another object of the invention to provide for a simple method of integrating program fragments together to produce a control program making use of the visual paradigm of the area-model.
The development tool may include a second integration wizard receiving information about the matching of program fragments to phases of operation of the area-model and to accept further input from the user to match second program fragments to the first program fragments. The second program fragments may provide graphic interface to the user indicating values of the control variables used by the first program fragments.
Thus it is another object of the invention to allow information about the matching of program fragments to phases of operation to be used in subsequent integration steps so that other elements or reusable program, for example those generating human machine interfaces, can be readily connected using the renaming convention established during the first integration process.
The second program integration wizard may receive input from the user by providing a listing of second program fragments, the program fragments being selected as those having control variables with tags matching to tags of program fragments, prior to renaming, previously matched to phases of operation.
Thus it is another object of the invention to make use of the initial identity of program fragments to allow automated matching of variables between different program sections.
The foregoing and other objects and advantages of the invention will appear from the following description. In the description, reference is made to the accompanying drawings which form a part hereof and in which there is shown by way of illustration a preferred embodiment of the invention. Such embodiment does not necessary represent the full scope of the invention, however, and reference must be made to the claims herein for interpreting the scope of the invention.